<?php
// 导入phpmailer
import ( VENDOR_PATH . '/phpmailer/class.phpmailer.php' );

// 邮件配置
define ( "USERNAME", '13560457989' );
define ( "PASSWORD", 'cwc19940302' );
define ( "MAIL_ADDRESS", '13560457989@163.com' );
class Mailer {
	public static function getInstance() {
		$mail = new PHPMailer ();
		// 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
		$mail->SMTPDebug = 1;
		// 使用smtp鉴权方式发送邮件，当然你可以选择pop方式 sendmail方式等
		$mail->isSMTP ();
		// smtp需要鉴权 这个必须是true
		$mail->SMTPAuth = true;
		// 链接qq域名邮箱的服务器地址
		$mail->Host = 'smtp.163.com';
		// 设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码
		$mail->CharSet = 'UTF-8';
		// 设置发件人姓名（昵称） 任意内容，显示在收件人邮件的发件人邮箱地址前的发件人姓名
		$mail->FromName = 'Mikasa Framework';
		// smtp登录的账号 这里填入字符串格式的qq号即可
		$mail->Username = USERNAME;
		// smtp登录的密码 这里填入“独立密码” 若为设置“独立密码”则填入登录qq的密码 建议设置“独立密码”
		$mail->Password = PASSWORD;
		// 设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”
		$mail->From = MAIL_ADDRESS;
		// 邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false
		$mail->isHTML ( true );
		return $mail;
	}
}
/**
 * 发送邮件
 *
 * @param GearmanJob $job
 */
function sendMail($job) {
	$mail = Mailer::getInstance ();
	$data = unserialize ( $job->workload () );
	// var_dump ( $data );
	// 设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大
	$ms = $data ['mail'];
	if (is_string ( $ms )) {
		$mail->addAddress ( $data ['mail'] );
	}
	// 群发
	else if (is_array ( $ms )) {
		foreach ( $ms as $m )
			$mail->addAddress ( $m );
	}
	
	// 添加该邮件的主题
	$mail->Subject = $data ['subject'];
	// 添加邮件正文 上方将isHTML设置成了true，则可以是完整的html字符串 如：使用file_get_contents函数读取本地的html文件
	$mail->Body = $data ['body'];
	// 为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录（相对目录、或绝对目录均可） 第二参数为在邮件附件中该附件的名称
	$result = $mail->Send ();
	if ($result == true) {
		Logger::log ( 'mail', '邮件发送成功' . $data ['subject'] . $data ['body'] );
	}
	else {
		Logger::log ( 'mail', '邮件发送失败' . $data ['subject'] . $data ['body'] );
	}
}
function LogSth($job) {
	Logger::log ( 'logsth', unserialize ( $job->workload () ) );
}
